using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace QldtSdh.DAL.Models.Mapping
{
	public class KhoaHoc_NganhDaoTaoMap : EntityTypeConfiguration<KhoaHoc_NganhDaoTao>
	{
		public KhoaHoc_NganhDaoTaoMap()
		{
			// Khoá chính
			this.HasKey(t => t.MaDaoTaoKhoaNganhGUID);

			// Các cột
			this.Property(t => t.MaDaoTaoKhoaNganhGUID)
				.IsRequired()
                .HasMaxLength(50);

			this.Property(t => t.MaKhoaHocGUID)
				.IsRequired()
                .HasMaxLength(50);

			this.Property(t => t.MaNganhDaoTaoGUID)
				.IsRequired()
                .HasMaxLength(50);

			this.Property(t => t.MaChuongTrinhDaoTaoGUID)
				.IsRequired()
                .HasMaxLength(50);

			// Ánh xạ Property của POCO vào Column của Table
			this.ToTable("KhoaHoc_NganhDaoTao");
			this.Property(t => t.MaDaoTaoKhoaNganhGUID).HasColumnName("MaDaoTaoKhoaNganhGUID");
			this.Property(t => t.MaKhoaHocGUID).HasColumnName("MaKhoaHocGUID");
			this.Property(t => t.MaNganhDaoTaoGUID).HasColumnName("MaNganhDaoTaoGUID");
			this.Property(t => t.MaChuongTrinhDaoTaoGUID).HasColumnName("MaChuongTrinhDaoTaoGUID");

			// Các quan hệ
			this.HasRequired(t => t.ChuongTrinhDaoTao)
				.WithMany(t => t.KhoaHoc_NganhDaoTao)
				.HasForeignKey(d => d.MaChuongTrinhDaoTaoGUID);
			this.HasRequired(t => t.KhoaHoc)
				.WithMany(t => t.KhoaHoc_NganhDaoTao)
				.HasForeignKey(d => d.MaKhoaHocGUID);
			this.HasRequired(t => t.NganhDaoTao)
				.WithMany(t => t.KhoaHoc_NganhDaoTao)
				.HasForeignKey(d => d.MaNganhDaoTaoGUID);

		}
	}
}
